
╔══════════════╗
║ Rhino 8 info ║
╚══════════════╝

For getting the link to work with Rhino 8, use the 'SetDotNetRuntime' command in Rhino and select 'NETFramework',
then restart Rhino.

The Grasshopper Component requires at least Rhino 8.5 and needs to be updated to version 1.4 to work properly.
It will then offer an option to use Rhino 8. Grab it from Tekla Warehouse:

	https://warehouse.tekla.com/#/catalog/details/94b0cde2-3aab-4e50-b983-e6273a44e0b1

╔═══════════════════╗
║ Installation info ║
╚═══════════════════╝
 	
To install the link, extract the files from the the install package and run GrasshopperTeklaLink.Setup.exe.
Details and instructions for manual installation are available in the Instructions text file in the same package.


╔═══════════════════════════════════════════════════════╗
║ Grasshopper-Tekla Structures Link v1.18 Release Notes ║
╚═══════════════════════════════════════════════════════╝


    Support for Welds
    =================

    Welds and polygon welds can now be inserted and controlled through Grasshopper.

    * New component "Weld" that creates a weld or polygon weld in Tekla Structures.

    * New component "Weld Common Attributes" to set the common attributes of a weld.

    * New component "Weld Attributes" to set the weld attributes.

    * New component "Tail Attributes" to set the Tail Information of a weld.


    Smoother installation & Support for multiple link versions
    ==========================================================

    * Installation doesn't require admin rights, like it previously did for e.g. Tekla 2024.
        - Run GrasshopperTeklaLink.Setup.Exe from the downloaded and extracted installation zip file.
        - The installer places these two files into the Grasshopper Libraries folder:
              GrasshopperTeklaLink.[TeklaVersion].dll
              GrasshopperTeklaLink.Loader.gha
            You can move them to the Libraries folder manually as well (or to any other location that Grasshopper
            loads plugins from), just remember to unblock both if needed.
        - This removes the need to put anything into the Tekla bin folder.
    
    * It's possible to have multiple link versions installed at the same time.
        - Just run the link setup for another Tekla version.
        - Alternatively place another GrasshopperTeklaLink.[TeklaVersion].dll in the Libraries folder manually
            (or to wherever the Loader.gha is located).
        - If needed, Grasshopper will show a version list and ask you which version to use each time it launches.


    More control over part Position
    ===============================

    * The 'Position' component has new inputs for setting the position enums like Left, Top, Front etc.
        - If connected, these inputs will override the buttons on the component.

    * The 'Expand Position' component returns named integers for the enum outputs.
        - So the outputs will display as text but can be used as numbers.


    More control when working with Shapes
    =====================================

    * The 'Create Shape' component has a new right-click option "Keep all inserted shapes" that means that when a
      new shape input name is provided, the shape with the old name will remain in the Shape Catalog rather than
      being deleted/updated.

    * The 'Item' creation components have a new right-click option "Bake to Tekla and keep shape name", which 
      similarly to the "Bake to Tekla" command will create independent copies of the items that were generated, 
      but won't create a copy of the shape they use.
        - This means that the shape names of the baked objects remain unchanged, and whenever the shape with that 
            name is updated by e.g. the 'Create Shape' component the baked objects will use the updated shape.
        - NOTE: This is only available if the shape is provided through the 'Profile' input, and not for the shape 
            name that is automatically generated when there's only geometry input.


    Other improvements
    =====================================

    * The 'Profile Contour' component preformance is greatly improved.
        - Previously it could stall Tekla and Grasshopper when used for more than a handful of contours.

    * The Tekla Point, Line, Polyline and Face params don't create duplicated objects in Tekla when connected from
      Rhino params/components.

    * The 'Bounding Box' component has a new right-click option "Union Box" to create single box from all the 
      objects in each input list/branch.

    * The 'Fitting' component has new inputs for setting the size of the fitting plane. The sizes can be domains.



╔═══════════════════════════════════════════════════════╗
║ Grasshopper-Tekla Structures Link v1.17 Release Notes ║
╚═══════════════════════════════════════════════════════╝


    Support for Rebar Sets
    ======================
    Rebar set components require Tekla Structures 2022 SP 12 or newer.


    Create a rebar set
    ------------------
    * New component "Rebar Set" that inserts a rebar set.


    Add rebar set modifiers
    -----------------------
    * "End Detail" that creates hooks and cranks for rebar sets.
        - Connect either Hook or Cranking Attributes to the component to select the type of end detail.

    * "Splitter" that creates rebar set splices.
        - Connect either Lapping or Cranking Attributes to the component to select the type of splitter.

    * "Property Modifier" that creates rebar set modifiers.


    Set all the rebar set attributes
    --------------------------------

    * "Surface Attributes" to set the attributes of the leg faces or leg surfaces of a rebar set.

    * "Guideline Attributes" to set the attributes of a rebar set guideline.

    * "End Detail Attributes" to set attributes for a rebar set End Detail.

    * "Splitter Attributes" to set attributes for a rebar set Splitter

    * "Modifier Attributes" to set attributes for a rebar set Property Modifier.

    * "Cranking Attributes" to set attributes for a crank for either a rebar set Splitter or End Detail.

    * "Lapping Attributes" to set lapping attributes for a rebar set Splitter.

    * The 'Hook' and 'Hooks' components (newly inserted) have an input for Rotation that applies to Rebar sets.


    Other new components
    ====================

    * New component "Attach to Part" that attaches a part to another part.
        NOTE: The original guid of the attached part will be lost.

    * New component "Grid Plane" that creates a grid on a plane or along a line.
        - The resulting grid can be used to create a view in Tekla Structures.
        NOTE: Updated 2024-11-01 to allow Heigth and Length inputs to be in Rhino units rather than always mm.


    Support for Tekla components in clusters
    ========================================

    * Any Tekla components, including object creating ones, can be put inside clusters.
        - When you cluster an object creating component, it will continue to modify the same Tekla objects that it
          originally created.
        - Subsequent copies of the cluster will generate new objects, as expected.

        NOTE: If you explode a cluster, you will get duplicated objects, since Grasshopper gives new GUIDs to the
              extracted components.

        NOTE: If you have a pre-clustered version of the component saved in another definition, that component
              will create new objects next time it's solved. If you then go on and make a copy of the cluster with 
              the clustered component, it will hi-jack these new objects as it believes it's just been clustered.

        NOTE: Putting Tekla components in clusters means that the mapping files for the clustered components will
              use 23 more chars than previously. Paths in the Windows API (and Tekla) can be max 260 chars.


    Various enhancements
    ====================

    * 'Modify' components accept boolean parts as input and will modify the underlying object (beam, slab, ...). 

    * 'Convert to Mesh' and 'Brep' are able to turn boolean cut objects into solids, if they are input directly.
        - Boolean cut objects that are part of an input assembly or component are are not turned into solids.

    * Bolts can be converted to accurate breps or meshes by using the HIGH_ACCURACY setting for the 'Convert to
      Mesh' or 'Brep' components.

    * New input "Plane" for the 'Grid' component, to be able to rotate or orient a Grid.

    * When arcs or circles are converted to polylines for rebar shapes, the tolerance setting is respected.

    * Display components have a Redraw command in the context menu.
        - Previously redraw was triggered only by double-clicking the icon/text.

    * The 'Create Tekla Profile' component appends the iteration number to the profile name if the name has been
      automatically generated.

    * Fix to bug that made switching between spiral and normal rebar groups failing.



╔═══════════════════════════════════════════════════════╗
║ Grasshopper-Tekla Structures Link v1.16 Release Notes ║
╚═══════════════════════════════════════════════════════╝


    New components
    --------------

    * New component "Bounding Box" that returns the bounding box of a Tekla object.
        - If the Plane input is left empty, the object's coordinate system will be used.

    * New component "Get Object by GUID" that can be used to reference Tekla objects based on their GUIDS.

    * New component "Set Phase" that can set the phase of any Model Object
        - Missing phases will get created. Existing phases will be updated with new names, if provided.

    * New component "Phase Catalog" that can be used to select from available phases.
        - The output is the phase number.

    * New component "Color Display" that can be used to add a temporary color to model objects.
        - Colors can be cleared by updating or redrawing the Tekla view.

    * New component "Mesh Display" that draws a temporary mesh (mesh, surface, brep) in the Tekla view.
        - These can be cleared by updating or redrawing the Tekla view, or by deleting the component.


    Controlling the up-direction of details and connections
    -------------------------------------------------------

    * New input 'Up direction' for the 'Component' component, which appears when inserting a detail or connection.
        - Can be used instead of the 'zsuunta', 'zang1' and 'zang2' attributes that also control the up-direction.

    * Using the 'Set Component Attributes' component doesn't reset the up-direction of the modified component.


    Imporved Grasshopper Component support
    --------------------------------------

    * Previously the 'Face' param didn't contain the father of the face when used through the Grasshopper
      component, this has been fixed.
        - Requires Grasshopper Component version 1.4.

    * The "Create Profile" component can be used from the Grasshopper component in Tekla.
        - Now works without using macros internally, which also gives it a significant speed boost.


    Various enhancements
    --------------------

    * Tekla points returned by the 'Expand Object' component can be used directly as Rhino/GH points.
      - Other geometries like polygons can be expanded further with 'Expand Object' to get the points.

    * The 'Auto Value List' component gets populated with "True" and "False" when connected to boolean inputs.

    * The 'Get Children' component returns the single rebars from a rebar set.

    * The 'Deconstruct Item' component doesn't have a Mesh output any more.
      - This makes the component more performant.
      - To get the solid geometry, use the 'Convert to Mesh' or 'Convert to Brep' components instead.
      - Applies to newly inserted components.

    * Tekla components like the Wall Layout Opening will automatically update the components they are applied to.


    Fixes
    --------------------

    * Less risk of duplicated objects when using model sharing.
        - When doing a model sharing read-in (or on model reopening), Tekla objects will be re-linked to the model 
          based on their guids. This should overcome some issues when objects in memory are becoming invalid 
          during the read in causing Grasshopper to lose track of them.

    * Fix to issue where the 'Property Catalog' component sometimes wouldn't list any properties.

    * Changing the filter in the 'Tekla Object Pipeline' component, or clearing a 'Model Object' param, will clear
      all the cached model objects.
        - This means the model object properties will be updated to the latest state if they are referenced again.



╔═══════════════════════════════════════════════════════╗
║ Grasshopper-Tekla Structures Link v1.15 Release Notes ║
╚═══════════════════════════════════════════════════════╝


    New components
    --------------

    * New component "Property catalog" that can be used to search for available report properties and UDAs.
	- Shows properties similar to what's shown in Tekla Organizer > Settings.
        - The output can be connected to the "Get Property" component.
        - The "Get Property" component can be used to get UDAs as well.

    * New component "Get Father" that can be used to get the father object of any model object that has a father.
	- For bolts, welds and connections the father is the main part.
        - If the input is the "Face" param, it will return the model object that the face was picked from.

    * New param "Face" that can be used to reference in a face from the Tekla model.
        - The face will be shown as a closed polyline.
        - This param can be used with the Grasshopper Component v 1.3 in Tekla, where it will trigger a "Pick
          Face" prompt.
	- The object that the face was picked from can be obtained with the "Get Father" component.
        - The returned polyline can have at most 99 points - if the face has more points, these won't be returned
          (API limitation).


    New components for temporary graphics
    -------------------------------------
    Temporary graphics can be cleared by updating or redrawing the Tekla view.

    * New component "Measure Distance" that draws a distance in the model.

    * New component "Text Display" that draws a text in the model.

    * New component "Polyline Display" that draws a polyline in the model.


    Control over curve-to-polyline conversions
    ------------------------------------------

    * New right-click option "Tolerance" that can be set to change the tolerance that is used for converting
      smooth curves to polylines when Tekla inserts e.g. beams or plates.
        - If the shape can't be converted wihthin the tolerance without using more control points than "Max
          control points" allows, a higher tolerance will be applied. 
	- Note that setting a tighter tolerance might result in a slower conversion and more control points.

    * If the right-click option "Max control points" is set to the default value, polylines with more vertices
      than this value - but less than the maximum number that Tekla allows - will automatically get all their
      vertices converted to control points without dropping any.


    Better extractions from the Tekla model
    ---------------------------------------

    * Speed improvement for components that return and handle objects from the model.
        - This includes 'Object Pipeline', 'Get Children', 'Deconstruct Component' and 'Deconstruct Assembly'.
        - Also applies when there are new objects for the 'Model Object' param and other floating params, as
          well as for object creating components.

    * Fix to a bug that caused errors in meshes created from Tekla surface objects.

    * The 'Get Coordinate System' component can be used to obtain the coordinate system of Tekla Point, Line,
      Polyline and Face params.


    Setting phase for objects
    -------------------------

    * When setting the phase for any object, if the phase doesn't exist in the model, it will be created.

    * When setting the phase for a Tekla component/connection, any child objects (including sub-components and
      their children) will get the same phase as well.

    * The phase of already inserted components in Tekla can now be changed with the "Set Attributes" component.
        - Use an attribute named "Phase" (case insensitive) followed by any value that can be converted to an int.

    * The phase for new components and assemblies can be set as previously, with some updates:
        - Use an attribute named "Phase" (case insensitive) followed by any value that can be converted to an int,
          and feed this attribute into the attributes input of the Component component or the UDA input of the
          Assembly component.


    Mapping fixes
    -------------

    * The 'Rebar Group' and 'Modify Rebar Group' components had some mapping issues when creating different types
      of groups from the same component (normal, curved, circular). Now attributes are applied in the right order
      and output groups have the correct tree structure.

    * 'Construct Plate' component outputs the correct data structure even when the input is points.
        - Null inputs can still change the output structure, and empty branches are removed from the output.



╔═══════════════════════════════════════════════════════╗
║ Grasshopper-Tekla Structures Link v1.14 Release Notes ║
╚═══════════════════════════════════════════════════════╝

    Note: This update requires Rhino 6 SR8 or newer.
    Also note that 'Convert to Brep/Mesh' produce geometries that might differ from previous, more on this below.

    ---

    Additional components for modifying existing Tekla objects
    ----------------------------------------------------------
    Note: The Grasshopper components don't have a 'memory', which means that any modifications are permanent and
          can only be undone in Tekla Structures itself

    * New component "Modify Single Bar" to modify single bars.

    * New component "Modify Rebar group" to modify rebar groups.

    * New component "Modify Item" to modify items.

    * The 'Set UDAs' component will automatically erase any existing UDAs with the same name but different type.
        - Previously, in order to change the type of an existing UDA, you needed to first reset it to the default
          value.


    Extract better data from the Tekla Model
    ----------------------------------------

    * New component "Get CoordSys" to get the coordinate system of a Tekla object as a Grasshopper plane.
        - Assemblies will return the coordinate system of the main part.
        - The coordinates are returned both relative to the global and the local system (i.e. current work plane).

    * Performance improvement for the 'Convert to Brep' and 'Convert to Mesh' components.
        - The components handle holes better and have improved overall stability.
	- For somehwat complex geometries, meshes can be 2x quicker and breps 10x quicker.
        - Note: This update means that breps and meshes extracted from Tekla can get a different number of
          (internal) faces compared to earlier. Faces are also returned in a different order, which means that any
          definition that relies on index numbers to look up faces, edges or vertices will likely need to find new
          indexes to use.

    * The 'Deconstruct Component' component doesn't return attributes whose name start with 'xs_command_' or
      'xs_nobjects_' any more.
        - These attributes are generated by Tekla Structures and might cause errors if they are set by the user.
        - The 'Get All UDA:s' component will still return these if they are needed.


    Create more accurate profiles
    -----------------------------

    * The 'Create Profile' component can use up to 999 points in the profile contour.
        - Right-click the component icon/text to view the digit scroller for changing this value.
	- Double-click the scroller to set the value using numbers.
        - More points means more accurate roundings, but might hurt performance a bit when using the profile.


    Progress indicator when creating and updating objects
    -----------------------------------------------------

    * Object components show the progress while objects are being generated or modified in Tekla.
        - The Grasshopper status bar also shows a counter.


    New commands in UI to zoom to and delete objects
    ------------------------------------------------

    * Object components and params have a new right-click command "Zoom to Tekla objects".

    * Params have a new right-click command "Delete objects in Tekla" (similar to the one for Object components).



╔═══════════════════════════════════════════════════════╗
║ Grasshopper-Tekla Structures Link v1.13 Release Notes ║
╚═══════════════════════════════════════════════════════╝


    New components to modify existing Tekla objects
    -----------------------------------------------
    Note: Be careful when using these components, as the Grasshopper components don't have any 'memory', which
    means that any modifications are permanent and can only be undone in Tekla Structures itself!

    * New component "Modify Beam" to modify existing beam type objects (beams, columns, panels, pad footings) in
      the Tekla model.

    * New component "Modify Plate" to modify existing contour plates or slabs in the Tekla model.

    * The 'Set [Component] Attributes' component can set attributes from saved presets.


    Possibility to get child objects
    --------------------------------
   
    * New component "Get Children" to get the child objects associated with any model object.
        - E.g. bolts, welds, rebars, details, cut planes

    * The 'Deconstruct Assembly' component's 'All Objects' output now includes boolean parts.


    Bug fixes
    ---------

    * Multiple "Component" components running in parallell don't risk inserting Tekla components in the wrong
      locations any more.

    * The 'Convert to Mesh' component works more reliably for some meshes.

    * The 'Deconstruct Beam' component produces valid 'Deforming' output for polybeams.

    * Fix to a bug in the 'Deconstruct Object' component which caused the component to get stuck in a loop for
      some object types.



╔═══════════════════════════════════════════════════════╗
║ Grasshopper-Tekla Structures Link v1.12 Release Notes ║
╚═══════════════════════════════════════════════════════╝

    Version 1.12.1 fixes the 'Object Pipeline' component added in 1.12 so that it doesn't cause an error to pop up
    every time Grasshopper is launched without Tekla running.

    ---

    New components for getting objects from the Tekla model
    -------------------------------------------------------

    * New component "Object Pipeline" that can reference objects from the Tekla model based on their type and/or a
      selection filter.

    * New component "Auto Value List" that can be connected to any input with named values (i.e. inputs that you
      can right-click to get a list of values to pick from).
        - Once connected, the component will show a dropdown with all the available attributes.
        - Can be used on e.g. the 'Filter' and 'Type' inputs of the 'Object Pipeline' component.


    Better handling of shapes and breps
    -----------------------------------

    * The 'Convert To Brep' component tolerances are further refined to get more accurate breps.
        - Now a tolerance of 0.1 mm is used internally.
        - This also fixes some issues that were introduced in version 1.11.

    * If the 'Create Shape' component is being used in a definition that is being triggered by the "Grasshopper
      Component" Tekla plugin, and the Name input is empty, the component will generate a unique shape name for
      each placed plugin instance.
        - Previously the same (random) name would be generated by the component within each plugin instance,
          meaning that newly inserted plugin instances would overwrite shapes inserted by other plugin instances.

    * When baking an item to Tekla that uses an existing shape from the Shape Catalog as input (rather than a brep
      from Grasshopper), a copy of the shape will be generated and used for the baked item.
        - This copying includes shapes that are being created by the 'Create Shape' component.


    Tekla component insertion improvements
    --------------------------------------

    * The 'Component' component accepts a list of several component names in its 'Name' input.
        - The names will be used sequentially to insert different components, similar to the 'Attributes' input.
        - The names need to refer to the same component type (e.g. CUSTOM_PART), otherwise a warning is raised.

    * The 'Component Catalog' component is refreshed when another Tekla model is opened, since different models
      might contain different items in the catalog.

    * The 'Component Catalog' library picking option (i.e. picking a component using the dialog that shows icons
      for the Tekla components) now returns the right component name.
        - This was broken in Tekla Structures 2021 and 2022.


    Automatic calculation of outputs of the 'Deconstruct' components
    ----------------------------------------------------------------

    * The outputs of the 'Deconstruct' components are calculated immediately when they are connected to something.
        - Rather than the user needing to re-trigger the component as previously.



╔═══════════════════════════════════════════════════════╗
║ Grasshopper-Tekla Structures Link v1.11 Release Notes ║
╚═══════════════════════════════════════════════════════╝


    "Convert to Brep" and "Convert to Mesh" component improvements
    --------------------------------------------------------------

    * New input option for the solid creation type, e.g. NORMAL or RAW (i.e. no cuts or fittings).

    * The "Convert To Brep" component has increased tolerance when converting objects with flat cuts.

    * The "Convert To Brep" component doesn't crash any more when the definition is triggered through
      Rhino.Inside (i.e. is used with the Grasshopper Component in Tekla).


    "Component" component improvements
    ----------------------------------

    * A Tekla component inserted using the "Component" component will be updated to the new type whenever the
      "Name" input is changed.
        - The component is deleted and re-inserted in Tekla, so it will get a new GUID.
        - Changing the secondary parts of a connection now also re-inserts the connection as expected

    * The Component component output will not be flattened any more if the input is a tree.
        - Same goes for some other components like Plane Cut.


    "Construction Object" component improvements
    --------------------------------------------

    * Added a right-click option to the Construction Object component for setting the maximum number of control
      points when creating a construction polycurve.



╔═══════════════════════════════════════════════════════╗
║ Grasshopper-Tekla Structures Link v1.10 Release Notes ║
╚═══════════════════════════════════════════════════════╝


    New component that deconstructs anything
    ----------------------------------------

    * New component "Expand Object" that expands all the public properties of any object (not just Tekla objects)
        - Can be used to extract attributes of e.g. reinforcement or any other object type that doesn't have a
          dedicated expand component.


    New Polyline input param
    ------------------------

    * New param "Tekla Polyline" that lets you pick a polyline in Tekla Structures and bring it into Grasshopper.
        - Similar to the Tekla Point and Tekla Line params, which now are more stable as well.
        - [2019+]


    Support for dates in UDAs
    -------------------------

    * 'Construct UDA' and 'Get UDA Value' have a new option "date" for the 'Type' input. With this enabled:  
        - Value inputs of type GH_Date (e.g. what you get from the 'Construct Date' component) are converted to
          Tekla Date UDAs and vice versa.
        - Text input of the form YYYY-MM-DD (e.g. "2022-01-01") will be converted to the required int
          representation (e.g. 1640995200).


    More reliable item handling
    ---------------------------

    * Less brep insertion errors when using the 'Item' and 'Create Shape' components.
        - This often happened because of duplicated shape geometries 
        - In Tekla version 2019i+, every item geometry is inserted as a new shape, regardless of whether it
          already exists in the shape catalog.
        - For the 'Create Shape' component, the now unnecessary 'Replace identical' menu option has been removed.
        - In older Tekla versions, shape geometries that already exist are detected more reliably.

    * Items are inserted correctly even if their axis is in the negative x direction.


    Easier to work with components and plugins
    ------------------------------------------

    * New options for the 'Deconstruct Component' component:
        - "Explode sub-components", which will inlcude objects created by any sub-components in the 'Created
          Objects' output.
        - "Order created objects", which will order the objects in the 'Created Objects' output according to
          their label (if it exists), then by their type and finally their guids. This can be useful for some
          plugins, where the output order might not always be guaranteed.

    * Plugins inserted with the 'Component' component can adapt if the input objects are switched out.
        - In that case the plugins are being removed and re-inserted, similar to connections and details.


    Improved assembly handling
    --------------------------

    * The 'Deconstruct Assembly' component's 'All Parts' output is renamed to 'All Objects' and now shows rebars,
      bolts, welds, surfaces and surface treatments in addition to the parts of the assembly.

    * Selecting the 'Get Assembly' component highlights the assembly, not just the main part.

    * Baking of assemblies or cast units works as intended even if they take input from multiple item components.


    Possibility to set default numbering attributes
    -----------------------------------------------

    * The default attributes file now includes entries for setting the default
        - Numbering attributes
        - Cast unit type
        - Pour phase
       for different object types. These will be applied to new objects, unless they have numbering inputs.

    * To change the default attributes:
        1. In the 'Tekla' menu in Grasshopper, select 'Reset Default Attributes' (not needed if this is the first
           time you install the Tekla link).
        2. Select "Default attributes..." to open the file with the default attributes.
        3. Modify the attributes and save the file.
        4. Select 'Reload Default Attributes' to take them into use directly (otherwise they will be loaded next
           time Grasshopper is started).

    * In Tekla, the standard part number prefix for concrete objects is "Concrete". This is also the case in the
      default attributes that are generated when selecting "Reset Default Attributes".


    Avoid positioning problems for vertical plates and slabs
    --------------------------------------------------------

    * New input 'Orient' for the 'Plate' and 'Slab' components that can be set to 'false' to ignore auto-
      orientation of plate and slab boundaries.
        - Currently, plates and slabs are auto-oriented upon insertion in Tekla so that the up-side is always in
          the positive global z-direction. This can cause unpredictable orientations for vertical plates.


    And a few other things, including
    ---------------------------------

    * 'Convert to Brep' and 'Convert to Mesh' work more reliably on objects with cuts, regardless of Rhino units.

    * The nicknames of object creating components can be changed without being reset after every solution.

    * 'Construction Polyline' param can be used to pick construction circles, arcs and lines in Tekla as well.

    * 'Construction Arc' param can be used to pick construction circles in Tekla as well.



╔══════════════════════════════════════════════════════╗
║ Grasshopper-Tekla Structures Link v1.9 Release Notes ║
╚══════════════════════════════════════════════════════╝


    New Components
    --------------

    * New component "Surface Treatment" for inserting surface treatments.
        - Note that the side of the face that the surface treatment is applied to will depend on the orientation
          of the boundary input.

    * New component "Set Attributes" for setting attributes of existing Tekla components.
        - i.e for modifying Tekla connections, details, seams, custom parts or plugins.


    Enhanced Components
    -------------------

    * 'Convert to Brep' and 'Convert to Mesh' components
	    - Handle conversion of objects with cuts and holes more robustly.
	    - Can convert Surfaces, Surface Treatments and Boolean Parts.

    * 'Item' and 'Create Shape' components can convert subD geometry to items in Rhino 7.

    * 'Component' component can insert more than one detail on a single input object, if provided more than one
      input point.

    * For Part and Rebar components, the class can quickly be set by connecting a number to the Attributes input.
        - As previously, a number or string connected to the rebar Attributes input set the rebar size as well.

    * 'Beam' component output is correctly structured, even if beams and polybeams are mixed.

    * 'Construction Object' component assigns different colors to different lines when fed with lists of inputs.

    * When trying to create a shape with the 'Create Shape' component, if another shape with identical geometry
      already exists in the model the 'Create Shape' component now outputs the existing shape rather than nothing.
        - As previously, there's a right-click option 'Replace existing shapes' that lets the component replace
          the existing shape instead.
        - This is needed since Tekla doesn't let you create two shapes with identical geometries.

    * Materials listed in the 'Material Catalog' component are not duplicated on subsequent openings any more.


    UI updates
    ----------

    * New right-click option for object-creating components to delete created objects in Tekla.



.======================================================.
| Grasshopper-Tekla Structures Link v1.8 Release Notes |
:======================================================:

    * 1.8.1 fixes the 'Convert to Brep' and 'Convert to Mesh' components which started working recursively in 1.8, 
      i.e. they were automatically meshing all child objects of any model object. They are now recursive only for
      assemblies and components.
        - Additionally, the output of these components is now a tree, as some objects can result in more than one
          mesh/brep. This also means invalid or null outputs can be identified more easily.

    ---


    New Components
    --------------

    * New components "Lofted Plate" and "Lofted Slab" for inserting lofted plates and slabs.
        - Note that position can't be set for lofted plates in Tekla Structures (yet), thus the position input
          has no effect.
        - The created lofted plates can be invalid for some input curves. This is a Tekla core limitation, i.e.
          you would get the same result if you create them manually from similar polycurves in Tekla Structures.
        - Requires Tekla Structures 2019i or newer.
	
    * New components "Assembly" and "Cast Unit" for creating assemblies and cast units respectively.

    * New component "Deconstruct Assembly" for getting the objects that belong to an assembly or cast unit.

    * New component "Get Assembly" for getting the assembly or cast unit that a model object belongs to.
        - You can get assemblies at different levels in the hierarchy by using the "Level" input.



    Enhanced Components
    -------------------

    * The 'Construction Object' component can create construction polylines in Tekla with real circular arcs, if
      there are arcs in the input polycurve [2019+].
        - Previously arc segements were just approximated with polylines in Tekla.

    * The position type of connections or details, and the detail type of details can be set or checked in GH.
        - Sometimes connections or details don't get inserted correctly from Grasshopper because the position or
          detail type needs to be something other than the default, e.g. 'Wall to Wall' connection needs the
          attribute "position_type 3" to work on straight connections.
	- To set the values to something other than default, use the attributes "position_type" and "detail_type"
          followed by the desired integer value. These are fed to the "Attributes" input of the "Component"
          component. Available values are
               position_type 0 -> MIDDLE_PLANE
               position_type 1 -> BOX_PLANE
               position_type 2 -> COLLISION_PLANE
               position_type 3 -> END_END_PLANE
               position_type 4 -> GUSSET_PLANE
               detail_Type 0   -> END
               detail_Type 1   -> INTERMEDIATE
               detail_Type 2   -> INTERMEDIATE_REVERSE
        - To check the required values, insert the connection or detail manually into Tekla and then reference it
          into the 'Deconstruct Component' component. The values become visible in the 'Attributes' output under
          the names "position_type" and "detail_type".
        - If any of these values is non-default, it is indicated with a note in the 'Input Types'
          output. In that case you might need to set the value explicitly when inserting the component from
          Grasshopper, as described above.

    * The 'Create Item' components have a 'Deforming' input that can be used to give Start and End offsets.
        - As for beams, construct the input with the 'Deforming Attributes' component.
        - Angles, Cambering and Shortening attributes don't have any effect on items.
	- Only newly inserted Item components have this input.

    * 'Convert to Brep' and 'Convert to Mesh' components can convert Assemblies and Cast Units to Rhino breps.



    Smaller Tweaks
    --------------

    * Circle-like curves and arc-like curves can be used as range input for tapered rebar groups.
	- Previously only pure circles and arcs worked as expected.
        - This creates "Tapered curved" type rebar groups.
	- With circles as input, the end points are separated a few mms to make the group valid in Tekla.

    * It's possible to set different colors and line types for different construction objects when created with
      the 'Construction Object' component.

    * Rebar Sets can be referenced with the Rebar param.
        - Previously this was only possible with the Model Object param.
        - There's no component to extract information from them, apart from the solids ("Convert to" components).

    * Fix to 'Beam Angle' component to rotate columns consistently with beams.

    * The 'Tekla Line' param accepts line-like curves as input, in addition to pure lines.

    * Points and zero length lines as inputs for the 'Beam' component gives an appropriate error message.

    * Attributes and UDA query results are ordered alphabetically.



.======================================================.
| Grasshopper-Tekla Structures Link v1.7 Release Notes |
:======================================================:

    * It's easier to insert Tekla components and connections with the 'Component' component.
	- Only relevant inputs will be shown, depending on the type of the connected component (connection,
          detail, custom part, seam, plugin).
	- For connections, there are separate inputs for single and multiple Secondary Parts
		This should mean there's less need to duplicate the Main Part input.
	- Custom parts have a new 'Position' input that can be used to set the position.
        - "Component" components already used in existing scripts will remain unchanged.

    * Generated objects can automatically be removed whenever the geometry or main inputs are empty.
        - To enable this, right-click a component and select "Remove when input is empty".
        - This can be enabled individually for all the object-creating components.
	- Note that removed objects will get new GUIDs when they are regenerated the next time.
                Per default this option is off to prevent objects from getting new GUIDs if an input temporarily
                is empty e.g. because of wrong wiring.

    * It's possible to change (some of) the default attributes for Tekla objects that are being created.
	- This means you can use profiles, sizes and materials that exist in the local environment as defaults,
          i.e. when no other profile or attribute input is connected.
        - To change the attributes, open the Tekla menu in GH and chose "Default Attributes...". This will open
          an xml file that you can edit. After modifying the file, restart Rhino and Grasshopper to take the new
          values into use.

    * It's possible to change the maximum number of points of shape polygons for rebars.
        - 'Rebar' components have a new settings called "Max control points" setting that can be accessed by
          right-clicking the component, similar to 'Beam' components.
        - When shape input curves are converted to Tekla polylines, the number of points is kept below this value
          if possible.

    * Control points on straight polylines will not be removed when inserting rebars or polybeams.
        - Previously straight polylines were turned into two-point lines, thus rebar group shapes could get an
          uneven number of points.

    * Circles and arcs can be used as input for tapered rebar groups.
        - Previously the resulting rebar groups were triangle-shaped rather than circular.

    * Boolean parts can be deconstructed with the the existing 'Deconstruct' components.
        - e.g. 'Deconstruct Beam' can output the properties of a Tekla beam cut object and so on.

    * UDA and attribute string values can contain semi-colons, e.g. myAttribute "1;2;3;4" is parsed correctly.

    * When using arcs as input for the 'Construction Object' component, arcs that are complete circles are turned
      into Construction Circles (rather than Construction Arcs).
	- Construction Arcs can't be created from complete circles in Tekla so this caused errors previously.

    * Attributes are now mapped correctly when a mix of beams and polybeams are created with the same component.

    * You can set the position type of connections using the attribute 'position_type' followed by an integer.
        - This attribute is fed to the 'Attributes' input of the 'Component' component.
        - Some connections need a different value than the default, e.g. 'Wall to Wall' connection needs the
          attribute "position_type 3" to work on straight connections.
        - Available values are
               position_type 0 = MIDDLE_PLANE
               position_type 1 = BOX_PLANE
               position_type 2 = COLLISION_PLANE
               position_type 3 = END_END_PLANE
               position_type 4 = GUSSET_PLANE



.======================================================.
| Grasshopper-Tekla Structures Link v1.6 Release Notes |
:======================================================:

    * New component "Construction Object" for inserting construction objects into the Tekla model.
      The object type in Tekla depends on the input type, i.e.
                   Point -> Construction Point
                    Line -> Construction Line
                  Circle -> Construction Circle
                     Arc -> Construction Arc [2019+ only]
                   Curve -> Construction Polycuve (as a polyline) [2019+ only]
      Plane or Rectangle -> Construction Plane

    * Fix so that you can set multiple construction objects using the "Set Multiple [...]" command in the context
      menu of the Construction Object params.



.======================================================.
| Grasshopper-Tekla Structures Link v1.5 Release Notes |
:======================================================:

 >>> Note: After updating, existing Grasshopper definitions might generate some warnings when they are opened.
           These can be ignored and should stop showing up after you've re-saved the definition.


 New Components
 ==============

    * New Parameters for referencing Construction objects (Points, Lines, Arcs [2019+ only], Circles, Polylines
      [2019+ only] and Planes) from Tekla Structures.
        - The referenced geometry will automatically be converted to corresponding Rhino geometry when plugged
          into standard Grasshopper components.

    * New component "Tekla Line" for picking a line by two points in Tekla Structures.
        - The line will be visualized in Rhino as well as Tekla Structures.

    * New component "Get All UDAs" to extract all the User-defined attributes from any model object.

    * New component "Set UDAs" to set User-defined attributes for any model object.
	- To easily remove any UDA, use the 'Construct UDA' component and set the value of the constructed UDA(s)
          to an empty string, then connect the output to the "Set UDAs" component.


 Enhanced Components
 ===================

    * Curved or Circular bar group types can now be created with the 'Create Rebar Group' component.
        - this will happen automatically if the shape input is a single arc or circle.

    * Spiral type stirrups are supported.
	- The 'Group Attributes' component has a new input called 'Spiral' for enabling spiral stirrups.
        - Can be used with both normal and circular bar groups.

    * Grid labels can be set when creating a grid with the 'Grid' component.

    * You can now check attributes, child objects and required inputs of referenced Tekla components/plugins
      using the 'Deconstruct Component' component.
        - The input information can be useful when trying to determine the correct input sequence for inserting a
          complicated Tekla component (plugin) from Grasshopper.

    * The 'Create Shape' component can replace any existing shape that uses the same geometry.
        - This might be needed since in recent Tekla versions, you can't have two different shapes with identical
          geometry in the Shape catalog.
        - To enable this, set the new right-click option "Replace similar shapes" to 'true' for the 'Create
          Shape' component.
        - If there are existing items in the model using the shape that is being replaced, they will be modified
          to use the new shape name instead.

    * Position for created parts can be entered as text (from e.g. a panel) into the 'Position' input.
        - The basic syntax is PLANE_ENUM(PLANE_OFFSET), ROTATION_ENUM(ROTATION_OFFSET), DEPTH_ENUM(DEPTH_OFFSET)
        - The offsets are optional. See the input tooltip for syntax examples.

    * The max number of control points for e.g. plates or polybeams will be indicated under the component, if
      it's set to anything other than default.
        - The change in number is possible to undo with the Undo command.

    * The 'Beam Angle' component is renamed 'Beam Rotation'.


 Changed behavior
 ================

    * Part Attributes (Name, Profile, Material, Finish, Class, Phase, UDA) are not reset by GH any more if they
      have been manually edited in Tekla, unless they have a value plugged in.
        - As previously, Position attributes will not be updated from GH, unless there's a Position component
          connected to the Position input of the part generating component. In that case all of the position 
          attributes will come from the Position component. Numbering and Deforming attributes work mainly the 
          same way as Position.


 Bugfixes
 ========

    * Under some circumstances, components might lose the connection to the generated objects in Tekla and start
      creating duplicated ones.
        - If the Tekla model was changed without restarting Rhino, the next time you opened the script
          connections might be lost. This has been fixed.
        - If the connection to the Tekla API was lost for some reason, you could sometimes still reference
          objects into Grasshopper, but their GUIDs couldn't be queried and stored. Now there's a warning in the
          balloon tip if this happens, nudging you to restart Rhino to re-establish the API connection.

    * Some Tekla components couldn't be correctly selected in the Component Catalog component since they shared
      the same internal number. This has been fixed.

    * Fix to a bug in handling the 'Phase' attribute input for components.


 Other
 =====

    * API: Support for automatic unboxing of any tekla link types
        - Improves compatibility with scripting/API tools like Speckle or ghPython.

    * UI: Removed prefix numbers from panel headings.



.======================================================.
| Grasshopper-Tekla Structures Link v1.4 Release Notes |
:======================================================:


    * New "Beam Rotation" component that lets you calculate the needed rotation value for a Beam or Column to
      align with a desired Up-vector.
        - You can plug the output value into the Rotation input of a Position component.
        - If a plane is provided as the Up-vector, the plane's normal will be used as expected.

    * Increased the number of control points that can be created when inserting slabs, plates or polybeams.
        - The default limit is 99 points.
        - The limit can be increased up to 999 in Tekla 2017i+, however this might make the model/updates slower.
        - To modify the limit of any "Slab", "Plate" or "Beam" component, right-click the component icon/name and
          change the "Max Control Points" digit scroller value.

    * "Create Tekla Points" component defaults to Beam type point when added.

    * Added shortcuts to default rotations (Front-Top-Back-Below) to the context menu of the "Rotation" input of
      the "Position" component.

    * Automatically generated shape names are prefixed with an underscore.
        - This means they stand out better in the Shape Catalog.
        - The command "Remove unused shapes" (on the Tekla menu in Grasshopper) will only search through and
          remove these shapes.
        - When running the Grasshopper scripts with this version, any previously added shapes will remain in the
          Shape Catalog, and a new shape with the underscore prefix will be created. New and updated items will
          thereafter use the shape with the new shape name.

    * Identical items can be inserted from two different components (previously there was an error message from
      Tekla when you tried this).
        - When creating an item there's a check if an identical shape already exists in the Shape Catalog, and in
          that case the existing shape will be used for the item.
        - If there are several components that create identical items (thus sharing the shape name), the command
          "Bake to Tekla" might not work for that shape.

    * Fixed issues that sometimes appeared when multiple components were solving at once (e.g. some geometry was
      not properly updated).



.======================================================.
| Grasshopper-Tekla Structures Link v1.3 Release Notes |
:======================================================:


New components
--------------

    * New "Create Shape" component that creates or modifies a Tekla shape and adds it to the Shape Catalog.
    
    * New "Get Report Property" component that gets report properties from any model object.


Tekla Menu
----------

    * New menu command "Delete Unused Shapes" that deletes all shape profiles that are not used by any item from
      the component catalog in the Tekla Model.
      - Having a lot (100s or 1000s) of unused shapes can slow down the Tekla model considerably. This is a way
        to remove left-over shapes that can pile up when generating items from Grasshopper. 
      Note: This also removes unused non-Grasshopper generated shapes.


UI updates
----------

    * Added command "Recompute" to the context menu of relevant Tekla components.
      - This is similar to double-clicking the component.

    * A spinner icon shows up next to the Tekla menu whenever there are Tekla components solving

    * Input fields of the Catalog components receive focus when the dialogs open.


General updates for components
------------------------------

    * The output of the part creating components is not flattened any more (so easier to use it downstreams).
      - For this to work properly, use lines or curves to define the geometry of beams and slabs/plates (rather
        than points).

    * Fix to bug that meant the objects created in Tekla sometimes weren't updated to the final state when
      modifying the parameters using sliders.


Component updates
-----------------

    * Tekla Point: Referenced Tekla Points are displayed in Rhino.

    * Tekla Point: A Tekla Point parameter can automatically be used at plane inputs.

    * Beam: Create closed polybeams from closed input curves. The seam point will be automatically moved in case
        it's at a corner.

    * Rebar Group: Rebar groups can be created along curved ranges.
      - If a curve is provided as the Range input, and only one curve is defined for the Shape input (or the input
        is grafted), the shape curve will be copied along the range and the group type will be tapered.
      - If the range input is a circle or arc, the rebar group type will be tapered curved.

    * Component: The Class field of a Connection or a Detail can be updated by using it's backing attribute
        "group_no" in attribute files or direct input.

    * Component: The main part of Details and Seams can be changed without manually removing the objects in Tekla.

    * Convert To Mesh: Fix to bug when reading the mesh from a Tekla solid.



.======================================================.
| Grasshopper-Tekla Structures Link v1.2 Release Notes |
:======================================================:


UI Changes
----------

    * Tekla Main Menu added to Grasshopper with commands to enable/disable all Tekla components, Select all Tekla
        objects etc.

    * Tekla Brep type name shown as Item and Base Component shown as Tekla Component.

    * Tooltips added for context menu commands.


New components
--------------

    * New Create Profile component that creates a fixed Tekla profile from a curve/outline and adds it to the
      Tekla Profile catalog.
      - By default, the profile origin is the center of the outline bounding box. Optionally you can provide your
        own origin point or plane (for controlling the profile rotation).
      Note: This component is fairly slow as it triggers all kinds of macros in Tekla Structures, and is thus not
        suitable for continous updating with e.g. a slider. A Data Dam component can be used at the input to
        control when the component/profile gets updated.

    * New Get UDA Value component that can be used to read the value of any UDA of any model object.
      - If used on a Tekla component, it will return attribute values from the component instead.


Updated components
------------------

    * Improved Item components:
      - [Rhino 6 only] Some closed breps in Grasshopper that previously failed to convert to closed meshes for
        transfer to Tekla are now automatically repaired by the Item components to create valid closed items.
      - If a Geometry input is provided, any Line input (point or line) will be used to set the origin (or origin
        and axis) of the resulting shape, and the geometry will show up at the same location in Tekla and in Rhino
        (previously any line input would move the geometry in Tekla so that it didn't match the location in Rhino.

    * Improved Plate and Slab components:
      - Contour points are more intelligently applied when converting a Nurbs curve to a Tekla contour, to
        minimize the deviation from the actual curve especially around corners and avoid unneccessary points on
        straight edges.

    * Improved Extrude Beams component:
      - The component will create a fitting between the first and last beam segment if the start and end points
        are the same.
      - The default class of extruded beams is now 1 to avoid transparent color.

    * Updated Deconstruct components:
      - Some outputs (Attributes, Position, Numbering, Deforming, Type) will only be calulated in case they are
        connected to another component (can be a Panel). This is to speed up computiation by avoiding extraction
        of unnecessary information.
      - Once the outputs have been connected, double-click the parent Deconstruct component to re-run it and
        calculate the values.
      Note: This means you can't preview output values by hovering the output, unless it's connected to something.

    * Updated Profile Contour component:
      - If no Plane input is given, the profile will show up at the origo as before, but with the global Y-axis as
        its up-direction (previously up was X-axis). This is to align it with the Create profile component.
      - The old component is deprecated but works as previously in projects where it's already in use.

    * Rebar Components that have the option "Remove while inputs are being modified" enabled, will have their
        objects removed from Tekla if the Shape input is invalid.

    * Tekla Input and Floating Parameters (i.e. all Tekla Model Object, Tekla Point, Position, ComponentInput
        params) accept direct input from objects that are Tekla API types.
      - Useful when creating scripting components that output Tekla objects which should then interact with the
        Tekla link components (i.e. no need to create your own Goo types for these Tekla types any more).


Fixes
-----

    * Fix to some components disappearing when a definition is opened without a connection to Tekla Structures.

    * Fix to Index Out of Range error that sometimes appeared for the Rebar Group component.

    * Fix to issue where some attributes were bleeding between Tekla objects.
      - When extracting attribute information from a Tekla part and using that info as input for creating new
        parts, some attributes would stay linked to the original part attributes even outside of Grasshopper.

    * Fix to tolerance issue when converting curves to e.g. polybeams when using large units in Rhino.



.======================================================.
| Grasshopper-Tekla Structures Link v1.1 Release Notes |
:======================================================:


* New components for referencing and deconstructing Tekla objects
-----------------------------------------------------------------

      * New Param components (as floating params) to reference objects from Tekla Structures into Grasshopper.
        - Can be used instead of the old Get components (these are now deprecated).

      * New Deconstruct components to extract model object attributes.
        - Can be used instead of and extends the old Get components (these are now deprecated).

      * New Expand attributes components to browse Part, Position, Numbering and Deforming Attributes that are
        extracted with the Deconstruct components.

      * New Expand UDA component that can be used to expand UDA strings that are extracted from parts.


* Other new components
----------------------

      * New Construct UDA component that can be used to construct UDA input strings for the Part Attributes and
        Rebar Attributes components.
        - Can be used to construct Attributes input for the Component component as well.

      * New Convert to Mesh component for creating a Grasshopper mesh from a Tekla object.
        - This is much faster than the Convert to Brep component, but occasionally might be missing some faces if
          there are holes in the object.


* Improved Item components
--------------------------

      * Item components have a right-click menu item to set the Meshing Parameters as Minimal, Coarse or Smooth.
        - Previously Coarse was always used.
        - This will enable faster updates when Minimal is used and finer details when Smooth is used.
        Note: This is not meant to fix problems due to "bad" breps, you still need to take care of those yourself.

      * Generated shape names are shorter (23 chars + numerical suffix) to prevent some reported errors with long
        shape names.
        - On update, any old shapes will remain in the Shape Catalog and a new shape with the shorter name will be
          created.
        - New and updated items will thereafter use the shape with the new shape name.

      * Default cast unit type for items is CAST_IN_PLACE.

      * A Box can be used as input for the Item components.


* Improved Profile Contour component
------------------------------------

      * Profile Contour component now has an input for a Plane or a Curve.
        - The profile will be projected onto the plane.
        - In case of a curve, the plane is the plane perpendicular to the start point of the curve.

      * The seam point of the profile contour will not depend on the profile orientation any more.
        - It's always the point farthest away in the y- direction of the local profile coord system.
        - Note that this might be at a different vertex than if using the old Profile Contour component.

      * The Default At Depth position of the Profile Contour component is now Behind.

      * The old Profile Contour component will continue to work in definitions where it's already used.


* Various other improvements
----------------------------

      * Tekla Tab renamed to show target Tekla version for quick version verification.

      * More descriptive texts when hovering outputs in Grasshopper.

      * Updated icons for catalogs.

      * Catalogs open next to the cursor (no more off-screen dialogs).

      * Grasshopper preview for Point, Beam and Plate type objects (as reference lines).

      * Rebar Groups don't need a range input if they are tapered.

      * Enum inputs accept text or numbers.

      * Default Depth position for panels created with the Panel component is Front.

      * Fix to bug with Spirit Level fittings for the Extrude Beams component.

      * Fix to bug where Reinforcement start number couldn't be set if the prefix was set.



.======================================================.
| Grasshopper-Tekla Structures Link v1.0 Release Notes |
:======================================================:


* Components to insert reinforcement
------------------------------------
	New Create Single Bar component for creating Single Bars.

	New Create Rebar Group component for creating Rebar Groups.

	New Rebar Catalog, Attributes, Hook, Hooks, Cover and Group components for setting rebar attributes.


* Support for Imperial units
----------------------------
	The Tekla components will use the units of he currently open Rhino document.
	  Note: Referenced or internalized Rhino/Grassshopper point and geometry values won't use the new scale if
	  the Rhino document changes, however points picked in Tekla will adapt. Keep in mind if reusing a script
	  from a different using system. E.g example scripts are created using metric (mm) units, so this means
          the slider values etc might need to be adjusted if viewed with imperial units.


* Component component improvements
----------------------------------
	The Phase can be set for Components from the attributes input (like other attributes), using the "Phase"
	  keyword and an integer.

	Attribute input can contain prefixes (that will be removed), which means that input can be copy-pasted
	  directly from attribute files. E.g. "macro_attributes.class_ref 14" is interpreted as "class_ref 14".
	  Won't work for components that store the attributes in xml format.


* Catalog components improvements
--------------------------------
	Catalog components show the currently selected item beneath the component in the UI.

	New right-click menu item "Pick from catalog..." for catalog components (executes the same command as
	  double-clicking the component).


* Misc smaller improvements, including
--------------------------------------
	The Grid component creates several grids if the input is a tree.
	  Note: You might need to flatten the input for the Grid component in old definitions.

	The Create Beam component removes the old beam when the input changes from a straight line to a curve
          (i.e. beam to polybeam) or vice versa.
	  Note: This will not restore the guid of the beam if changing the input from a line to a curve and back.

	Fittings created by the Extrude Beams component get a better angle when the segments have different
          length.

	UDA input can contain prefixes, which means that input can be copy-pasted directly from attribute files.
	  E.g. 'beam_attributes.comment "this is a beam"' is interpreted as 'comment "this is a beam"'.


.======================================================.
| Grasshopper-Tekla Structures Link v0.9 Release Notes |
:======================================================:

This release improves responsiveness especially when working with Tekla components/connections.
0.9.1 takes care of a bug that prevented some connections from being re-inserted on input modifications.


* When using the "Run in background" mode (i.e. the default), the Tekla objects that the Grasshopper components
    insert or modify in the background will now automatically appear at the component output when they are ready.
  The component icon is changed to a spinner while the objects are being processed in Tekla.
  This allows the Grasshopper UI to remain responsive while outputs can still be used downstream for inserting
    e.g. connections.
  Beneficial especially if used with the new "Remove" option for the Component component (see below).

* Faster interruption in Tekla when inputs are changing.
  This allows you to quicker see partial results on screen when modifying e.g. a slider.

* New right-click option "Remove while inputs are being modified" for the Component component. This mode means the
    inserted components in Tekla are removed while part and point inputs are being modified, to allow for quicker 
    updates of the model.
  Note: In this mode, the components will get new GUIDs after each input modification.
  This option is checked by default on newly inserted components.

* Resolved Illegal Z-direction error in Tekla preventing some connections from being inserted.



.======================================================.
| Grasshopper-Tekla Structures Link v0.8 Release Notes |
:======================================================:


* New Bent Plate component (Tekla Structures 2017 or newer).
  Behaves like the "Create bent plates using faces" command in Tekla Structures.

* Possibility to create points as native Tekla points (control points) with the Create Tekla Point component.
  !Note: You might need to re-insert any Tekla Point components to remove potential Parameter Index errors.

* The Get Point component shows the picked point in Tekla (as a control point) as well as in Rhino.

* Improvements in the robustness when inserting and modifying components.



.======================================================.
| Grasshopper-Tekla Structures Link v0.7 Release Notes |
:======================================================:

!Note: If using Tekla Structures 2017 or 2017i, this update requires at least 2017 SP5 or 2017i SP1.


* New Convert to Brep component that renders any Tekla model object geometry as Breps in Rhino.
    Note: The boundary output of the Get Plate component is now a polyline instead of a Brep.

* New Profile Contour component that can be used to extract the outline and holes of a profile from the
  profile catalog in Tekla.

* New Get Item, Get Connection and Get Model Object components to reference objects from Tekla structures.

* Internal lines of generated items are now hidden in the model view and in the drawings.

* The Plane Cut and Fitting components react correctly to changes in the input part.



.======================================================.
| Grasshopper-Tekla Structures Link v0.6 Release Notes |
:======================================================:

!Note: This update might generate some "Input parameter chunk is missing. Archive is corrupt."-messages when
  opening an old definition. These can be ignored and will disappear when you've saved the definition again.


* New Pad Footing and Strip Footing components.

* New Deforming component that can be used to set start and end offsets and angles for beams.
	
* Non-solid breps and meshes can be inserted as surfaces with the Create Item components.

* Improvements when transferring solids with the Create Item components.

* Default detail type is now End detail and default direction is Auto (can be changed with the zsuunta attribute)

* The detail type (end/intermediate/reverse) can be set with the detail_type attribute.



.======================================================.
| Grasshopper-Tekla Structures Link v0.5 Release Notes |
:======================================================:


* Position can be set for Custom Parts (by using text attributes as they are used in the attribute file).

* Negative decimal values can be used for attributes/UDA:s.

* Single points can be used as input for the componentInput component.



.======================================================.
| Grasshopper-Tekla Structures Link v0.4 Release Notes |
:======================================================:


* Baking of items works better (shape of baked object is saved to shape catalog).

* Up direction attribute (zsuunta) can be set for components.

* Icons added for inputs.



.======================================================.
| Grasshopper-Tekla Structures Link v0.3 Release Notes |
:======================================================:


* New Item componens (Tekla Structures 2017 only)
-------------------------------------------------
	For creating steel and concrete items, thus allowing you to transfer any
	  arbitary geometry from Rhino.
	Not possible to release for previous Tekla versions.


* New Plane Cut component
-------------------------
	For cutting a part with a plane.	


* New Part Cut component
------------------------
	For cutting a part with another part.


* New Fitting component
-----------------------
	For fitting a part end.


* Cut the link between the component and the part
-------------------------------------------------
	Added right-click option to "bake" the part to tekla. This means that
	  the link between the component and the part is cut and a copy of the
	  part is manipulated upon futher modifications.


* Phase attribute
-----------------
	[Breaking Change] Added Phase (number) to part attributes.


* Notable bugfixes
------------------
	Orientation of plates and slabs automatically adjusted to global Z
	  direction.
	
	Direct modification of generated plates and slabs fixed (previously part
	  DM wasn't working if start and end points were similar).



.======================================================.
| Grasshopper-Tekla Structures Link v0.2 Release Notes |
:======================================================:


* New Component component
-------------------------
	For inserting connections, details, plugins etc.


* New Component Catalog component
---------------------------------
	For picking the component to insert from the Tekla Component Catalog.


* New Component Input component
-------------------------------
	For creating custom plugin input.


* Part Attributes component updates
-----------------------------------
	[Breaking change] The UDAs list of strings input is changed to a UDA
	  single string item input.
		Now, if using a list of strings for the UDA input, the component 
		  will assign them to different parts. To set multiple UDAs for 		 
		  one item, you can still provide them in a single text input, 
		  separated by newlines.
		You need to delete and re-insert any inserted Part Attributes 
		  components to take the updated behavior into use.
	[Breaking change] Updated UDA syntax to match what we have in different 
	  inp files. See the documentation or the tooltips at the input for the 
	  new syntax.


* Object-creating components updates
------------------------------------
	Forcing the components to re-run by double-clicking the icon preserves 
	  existing GUIDs. I.e. the operation doesn't delete and replace all the 
	  generated members any more, just recreates any deleted ones and resets 
	  the rest.


* Input components updates
--------------------------
	Now works with trees internally instead of lists. Otherwise they might 
	  lose track of the input objects when using tree inputs.
	[Breaking change] Outputs the model object in addition to the other 
	  info. You need to re-insert the components to update the outputs.


* Get Plate Component updates
-----------------------------
	fix to situations where it didn't read the plate.


* Point component updates
-------------------------
	Faster removing of points when the component is deleted.
